From 49631b2900247f3f64517977da9098eebdee92de Mon Sep 17 00:00:00 2001 From: Tim Janik Date: Wed, 25 Oct 2000 23:38:46 +0000 Subject: [PATCH] use g_value_set_static_{string|boxed} where applicable. Thu Oct 26 00:51:52 2000 Tim Janik * gtk/gtksignal.c: (gtk_signal_emitv): use g_value_set_static_{string|boxed} where applicable. * gtk/gtk-boxed.defs (GtkSelectionData): specify gtk_selection_data_copy and gtk_selection_data_free do GtkSelectionData work as params in signals. --- ChangeLog | 10 ++++++++++ ChangeLog.pre-2-0 | 10 ++++++++++ ChangeLog.pre-2-10 | 10 ++++++++++ ChangeLog.pre-2-2 | 10 ++++++++++ ChangeLog.pre-2-4 | 10 ++++++++++ ChangeLog.pre-2-6 | 10 ++++++++++ ChangeLog.pre-2-8 | 10 ++++++++++ gtk/gtk-boxed.defs | 3 ++- gtk/gtksignal.c | 29 ++++++++++++++++++++++++++++- 9 files changed, 100 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index b2ffe6305a..12c5d51b2d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +Thu Oct 26 00:51:52 2000 Tim Janik + + * gtk/gtksignal.c: + (gtk_signal_emitv): use g_value_set_static_{string|boxed} where + applicable. + + * gtk/gtk-boxed.defs (GtkSelectionData): specify + gtk_selection_data_copy and gtk_selection_data_free + do GtkSelectionData work as params in signals. + Wed Oct 25 20:47:41 2000 Tim Janik * gtk/gdk-pixbuf-loader.c (gdk_pixbuf_loader_class_init): urg, removed diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index b2ffe6305a..12c5d51b2d 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,13 @@ +Thu Oct 26 00:51:52 2000 Tim Janik + + * gtk/gtksignal.c: + (gtk_signal_emitv): use g_value_set_static_{string|boxed} where + applicable. + + * gtk/gtk-boxed.defs (GtkSelectionData): specify + gtk_selection_data_copy and gtk_selection_data_free + do GtkSelectionData work as params in signals. + Wed Oct 25 20:47:41 2000 Tim Janik * gtk/gdk-pixbuf-loader.c (gdk_pixbuf_loader_class_init): urg, removed diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index b2ffe6305a..12c5d51b2d 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,13 @@ +Thu Oct 26 00:51:52 2000 Tim Janik + + * gtk/gtksignal.c: + (gtk_signal_emitv): use g_value_set_static_{string|boxed} where + applicable. + + * gtk/gtk-boxed.defs (GtkSelectionData): specify + gtk_selection_data_copy and gtk_selection_data_free + do GtkSelectionData work as params in signals. + Wed Oct 25 20:47:41 2000 Tim Janik * gtk/gdk-pixbuf-loader.c (gdk_pixbuf_loader_class_init): urg, removed diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index b2ffe6305a..12c5d51b2d 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,13 @@ +Thu Oct 26 00:51:52 2000 Tim Janik + + * gtk/gtksignal.c: + (gtk_signal_emitv): use g_value_set_static_{string|boxed} where + applicable. + + * gtk/gtk-boxed.defs (GtkSelectionData): specify + gtk_selection_data_copy and gtk_selection_data_free + do GtkSelectionData work as params in signals. + Wed Oct 25 20:47:41 2000 Tim Janik * gtk/gdk-pixbuf-loader.c (gdk_pixbuf_loader_class_init): urg, removed diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index b2ffe6305a..12c5d51b2d 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,13 @@ +Thu Oct 26 00:51:52 2000 Tim Janik + + * gtk/gtksignal.c: + (gtk_signal_emitv): use g_value_set_static_{string|boxed} where + applicable. + + * gtk/gtk-boxed.defs (GtkSelectionData): specify + gtk_selection_data_copy and gtk_selection_data_free + do GtkSelectionData work as params in signals. + Wed Oct 25 20:47:41 2000 Tim Janik * gtk/gdk-pixbuf-loader.c (gdk_pixbuf_loader_class_init): urg, removed diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index b2ffe6305a..12c5d51b2d 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,13 @@ +Thu Oct 26 00:51:52 2000 Tim Janik + + * gtk/gtksignal.c: + (gtk_signal_emitv): use g_value_set_static_{string|boxed} where + applicable. + + * gtk/gtk-boxed.defs (GtkSelectionData): specify + gtk_selection_data_copy and gtk_selection_data_free + do GtkSelectionData work as params in signals. + Wed Oct 25 20:47:41 2000 Tim Janik * gtk/gdk-pixbuf-loader.c (gdk_pixbuf_loader_class_init): urg, removed diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index b2ffe6305a..12c5d51b2d 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,13 @@ +Thu Oct 26 00:51:52 2000 Tim Janik + + * gtk/gtksignal.c: + (gtk_signal_emitv): use g_value_set_static_{string|boxed} where + applicable. + + * gtk/gtk-boxed.defs (GtkSelectionData): specify + gtk_selection_data_copy and gtk_selection_data_free + do GtkSelectionData work as params in signals. + Wed Oct 25 20:47:41 2000 Tim Janik * gtk/gdk-pixbuf-loader.c (gdk_pixbuf_loader_class_init): urg, removed diff --git a/gtk/gtk-boxed.defs b/gtk/gtk-boxed.defs index 23f82b65cf..68c636d2b1 100644 --- a/gtk/gtk-boxed.defs +++ b/gtk/gtk-boxed.defs @@ -14,7 +14,8 @@ gtk_accel_group_unref) (define-boxed GtkSelectionData -) + gtk_selection_data_copy + gtk_selection_data_free) (define-boxed GtkCTreeNode ) diff --git a/gtk/gtksignal.c b/gtk/gtksignal.c index 004b7293fc..365b09cec1 100644 --- a/gtk/gtksignal.c +++ b/gtk/gtksignal.c @@ -205,6 +205,33 @@ gtk_arg_to_value (GtkArg *arg, return TRUE; } +static inline gboolean +gtk_arg_static_to_value (GtkArg *arg, + GValue *value) +{ + switch (G_TYPE_FUNDAMENTAL (arg->type)) + { + case G_TYPE_CHAR: g_value_set_char (value, GTK_VALUE_CHAR (*arg)); break; + case G_TYPE_UCHAR: g_value_set_uchar (value, GTK_VALUE_UCHAR (*arg)); break; + case G_TYPE_BOOLEAN: g_value_set_boolean (value, GTK_VALUE_BOOL (*arg)); break; + case G_TYPE_INT: g_value_set_int (value, GTK_VALUE_INT (*arg)); break; + case G_TYPE_UINT: g_value_set_uint (value, GTK_VALUE_UINT (*arg)); break; + case G_TYPE_LONG: g_value_set_long (value, GTK_VALUE_LONG (*arg)); break; + case G_TYPE_ULONG: g_value_set_ulong (value, GTK_VALUE_ULONG (*arg)); break; + case G_TYPE_ENUM: g_value_set_enum (value, GTK_VALUE_ENUM (*arg)); break; + case G_TYPE_FLAGS: g_value_set_flags (value, GTK_VALUE_FLAGS (*arg)); break; + case G_TYPE_FLOAT: g_value_set_float (value, GTK_VALUE_FLOAT (*arg)); break; + case G_TYPE_DOUBLE: g_value_set_double (value, GTK_VALUE_DOUBLE (*arg)); break; + case G_TYPE_STRING: g_value_set_static_string (value, GTK_VALUE_STRING (*arg)); break; + case G_TYPE_BOXED: g_value_set_static_boxed (value, GTK_VALUE_BOXED (*arg)); break; + case G_TYPE_POINTER: g_value_set_pointer (value, GTK_VALUE_POINTER (*arg)); break; + case G_TYPE_OBJECT: g_value_set_object (value, GTK_VALUE_POINTER (*arg)); break; + default: + return FALSE; + } + return TRUE; +} + static inline gboolean gtk_arg_set_from_value (GtkArg *arg, GValue *value, @@ -296,7 +323,7 @@ gtk_signal_emitv (GtkObject *object, GtkArg *arg = args + i; g_value_init (value, arg->type); - if (!gtk_arg_to_value (arg, value)) + if (!gtk_arg_static_to_value (arg, value)) { g_warning ("%s: failed to convert arg type `%s' to value type `%s'", G_STRLOC, g_type_name (arg->type), g_type_name (G_VALUE_TYPE (value))); -- 2.30.2